import java.text.DecimalFormat;

class DoubleMatrix{
    public static DecimalFormat df = new DecimalFormat("#0.00000");
    int n,m;
    double[][] matrix;
    
    
    /**
     * Erstellt eine n x m-Matrix
     * @param n  die Dimension n der Matrix         
     * @param m  die Dimension m der Matrix
     * @param matrix    die Matrix als double[][]
     */
    public DoubleMatrix(int n, int m, double[][] matrix){
        this.n=n;
        this.m=m;
        this.matrix=matrix;
    }
    
    /**
     * Gibt die Matrix auf dem Bildschirm aus
     */
    public void print(){           
        for (int i=0; i<n; i++){            
            for (int j=0; j<m; j++){                
                if (matrix[i][j]<0) System.out.print(df.format(matrix[i][j])+"  ");
                    else System.out.print(df.format(matrix[i][j])+"   ");
            }
            System.out.println();
        }
    }
    
    /**
     * Multipliziert 2 Matrizen
     * 
     * @param A  die erste Matrix         
     * @param B  die zweite Matrix
     * @return die Ergebnismatrix
     */
    public DoubleMatrix matrixMult(DoubleMatrix A, DoubleMatrix B){
        DoubleMatrix res=new DoubleMatrix(A.n,B.m,new double[A.n][B.m]);
        
        if (A.m != B.n) { 
            System.err.print("Matrix Dimensionen passen nicht!");
            System.exit(1);
        } else {
            for (int i=0; i<res.n; i++){ 
                for (int j=0; j<res.m; j++){
                    for (int k=0; k<A.m; k++){
                        res.matrix[i][j]=res.matrix[i][j]+A.matrix[i][k]*B.matrix[k][j];
                    }
                }
            }
        }                
        
        return res;
    }
    
}

public class Aufgabe4 {       

    public static void main(String[] args) {
        double[][] X={{0,-4,1,2},{6,-2,0,5},{2,1,-1,1}};
        double[][] Y={{3,5,1},{2,5,0},{1,3,2},{2,8,5}};
        DoubleMatrix A=new DoubleMatrix(3,4,X);
        DoubleMatrix B=new DoubleMatrix(4,3,Y);
        
        System.out.println("A:");
        A.print();
        System.out.println("B:");
        B.print();
        
        System.out.println("AxB:");
        DoubleMatrix C=A.matrixMult(A,B);
        C.print();
        
    }

}
